PROJECT = "lcddemo"
VERSION = "1.0.0"

log.info("main", PROJECT, VERSION)

-- sys库是标配
_G.sys = require("sys")

---需要在云编译时添加SPI协议
spi_lcd = spi.deviceSetup(2, 7, 0, 0, 8, 40000000, spi.MSB, 1, 1)--https://wiki.luatos.com/api/spi.html
-- spi.setup(id, cs, CPHA, CPOL, dataw, bandrate, bitdict, ms, mode)

lcd.init("st7789", {
    port = "device",
    pin_dc = 6,
    pin_pwr = 11,
    pin_rst = 10,
    direction = 0,
    w = 240,
    h = 320,
    xoffset = 0,
    yoffset = 0
}, spi_lcd)
-- 如果显示颜色相反，关闭反色
lcd.invoff()

sys.taskInit(function()
    sys.wait(500)

    ---画图
    log.info("lcd.drawLine", lcd.drawLine(20, 20, 150, 20, 0x001F))
    log.info("lcd.drawRectangle", lcd.drawRectangle(20, 40, 120, 70, 0xF800))
    log.info("lcd.drawCircle", lcd.drawCircle(50, 50, 20, 0x0CE0))
    log.info("lcd", "size", lcd.getSize())

    ---二维码显示
    sys.wait(500)
    lcd.drawQrcode(20, 80, "鸡你太美", 80)

    ---汉字和图片显示
    -- 设置为字体,对之后的drawStr有效,调用lcd.drawStr前一定要先设置
    -- 若提示 "only font pointer is allow" , 则代表当前固件不含对应字体, 可使用云编译服务免费定制
    -- lcd库的默认字体均以 lcd.font_ 开头
    lcd.setFont(lcd.font_opposansm12) -- !查看lcdAPI页的常量表
    lcd.drawStr(120, 90, "drawStr")
    sys.wait(500)
    lcd.setFont(lcd.font_opposansm16_chinese) -- 具体取值可参考api文档的常量表
    lcd.drawStr(20, 180, "二维码显示") -- !使用汉字必须使固件中有汉字的库
    -- !云编译文档: https://wiki.luatos.com/develop/compile/Cloud_compilation.html
    lcd.showImage(0, 200, "/luadb/logo.jpg") -- ! 参数传入为"/luadb/xx.jpg"，第二要在luattool中将图片加入到资源页面，否则下载不进板子
    --!可以使用officebox万彩对图片的像素进行设置

end)

-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!
